package com.episode3;

import static com.util.HtmlStringUtil.*;
import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class Counter1 extends HttpServlet {

	private static final long serialVersionUID = 1L;
	private static final String EPISODE = "episode3";
	private static final String CK_NAME = "CK_NAME";
	
	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp)
			throws ServletException, IOException {
		
		Cookie ck = null;
		// request မှ ကွတ်ကီးများကို ရယူခြင်း
		Cookie [] cks =  req.getCookies();
		// အသုံးပြုနေသော ကွတ်ကီးကို ရှာဖွေခြင်း
		if (null != cks) {
			for (int i=0; i<cks.length ; i++) {
				if(CK_NAME.equals(cks[i].getName())) {
					ck = cks[i];
				}
			}
		}
		
		// အသုံးပြုနေသော ကွတ်ကီးကို ရှာမရခဲ့ပါက
		if(null == ck) {
			ck = new Cookie(CK_NAME, "0");
		}
		
		// ကွတ်ကီးမှ တန်ဖိုးကို ရယူ၍ တစ်ပေါင်းခြင်း
		int count = Integer.parseInt(ck.getValue()) + 1;
		// တစ်ပေါင်းထားသော ကွတ်ကီး၏တန်ဖိုးကို ပြန်လည် သတ်မှတ်ခြင်း
		ck.setValue(String.valueOf(count));
		resp.addCookie( ck);
		

		// response တွင် ယူနီကုဒ် Encoding အဖြစ် သတ်မှတ်ခြင်း
		resp.setCharacterEncoding("UTF-8");
		PrintWriter writer = resp.getWriter();
		writer.println(getHeaderHtml(EPISODE, "ကွတ်ကီးကို အသုံးပြုခြင်း"));
		writer.print("သင်သည် ဤစာမျက်နှာသို့ " + String.valueOf(count) + "ကြိမ် လာရောက်ခဲ့ပါသည်");		
		writer.println(getFooterHtml());
	}

	@Override
	protected void doPost(HttpServletRequest req, HttpServletResponse resp)
			throws ServletException, IOException {
		this.doGet(req, resp);
	}

}
